Aller au contenu principal

Memento des commandes Git

Création d'un dépôt et ajout d'un commit

CommandeEffet
git init <directory>Créer un dépôt git vide dans le répertoire spécifié ou initialise le répertoire courant en tant que dépôt git.
git config --global user.name <name>Définir le nom de l'auteur/autrice à utiliser pour les nouveaux commits.
git statusAfficher l'état du dépôt et la liste des fichiers inclus ou non pour le prochain commit.
git add <dossier>Inclure (stage) tous les changement dans <dossier> pour le commit
git add <fichier>Inclure les changement du <fichier> pour le commit
git add -AInclure tous les changements pour le commit
git rm <fichier>Enlever (unstage) <fichier> du prochain commit.
git diffAfficher les lignes modifiées depuis le dernier commit.
git commit -m "<message>"Valider les modifications sélectionnées (staged) pour créer un nouveau commit avec le message <message>.
git log ou git log --oneline --all --graphAfficher l'historique des commits
git remote add <name> <url>Ajouter une connexion de votre dépôt courant à un dépôt sur un serveur.
git pushPousser les nouveau commits sur le serveur (principal).

Téléchargement et exploration d'un dépôt simple

CommandeEffet
git clone <url>Cloner en local un dépot depuis l'adresse <url> généralement un serveur ou un forge.
git pull Récupérer les dernières modification (#réflexe).
git log --onelineAfficher l'historique avec une ligne par commit.
tigUn outil plus sympa que git log pour explorer l'historique.
git diff HEAD <num_commit>Affiche la différence entre le commit actuel (HEAD) et le commit <num_commit>.
git diff HEAD HEAD~1Affiche la différence entre le commit actuel (HEAD) et le précédent (HEAD~1).
git checkout <num_commit>Charge la version du code au niveau du commit <num_commit>. La "tête" se déplace au niveau de ce commit (HEAD détachée).
git checkout master ou <nom_branch>Positionne HEAD au niveau du dernier commit de la branche.
git reflogAffiche une liste des dernières positions de HEAD. (quand on est perdu !!! )

Les branches et les merges

CommandeEffet
git branchAfficher la liste des branches
git branch <nom_branche>Créer une branche <nom_branche>
git checkout <nom_branche>Basculer sur la branche <nom_branche>
git switch <nom_branche>Basculer sur la branche <nom_branche>
git checkout -b <nom_branche>Créer une nouvelle branche et basculer dessus
git switch -c <nom_branche>Créer une nouvelle branche et basculer dessus
git diff <branche_1> <branche_2>Comparer deux branches pour voir les différences
git merge <nom_branche> Fusionner la branche <nom_branche> avec la branche courante.
git stash Sauvegarder ses modifications actuelles temporairement pour nettoyer son espace de travail.
git stash popRéappliquer les modifications sauvegardées pour restaurer son espace de travail.

Corriger ses erreurs

CommandeEffet
git commit --amendAjouter des modifications au commit précédent pour le corriger ou simplement changer le message du commit précédent.
git reset <commit>Réinitialiser le HEAD au commit indiqué en gardant les modifications.
git reset --hard <commit>Réinitialiser le HEAD au commit indiqué en perdant les modifications.
git rebase <branche>(plus complexe) Reconstruire l'historique de la branche courant à partir d'une autre branche en résolvant les conflits à chaque commit
git branch -f <nom_branche> <commit>Réinitialiser la branche <nom_branche> (sur laquelle on n'est pas) au commit indiqué sans toucher à notre HEAD.
git restore <chemin_fichier> -s <commit>Récupère le contenu des fichiers indiqués par chemin_fichier extraits depuis le contenu du commit <commit>.

Lexique git

ConceptExplication
Un commitUne version validée du code avec un auteur / une autrice, un message et un identifiant unique.
Une brancheUne suite de commits avec un nom contenant une version du logiciel.
HEADLe commit actuellement sélectionné dans le dépôt.
remoteUn dépôt git sur un serveur par exemple la forge framagit.
originLe nom du remote par défaut.
masterLa branche par défaut, généralement la branche principale.